#pragma once


#include <string>
#include <sstream>
#include "../SQLExpr.h"
#include "../SQLExprImpl.h"

class SQLASTVisitor;

class SQLNotExpr : virtual public SQLExprImpl
{
private:
  // static long serialVersionUID = 1L;
public:
  static string_ptr class_;
  SQLExpr_ptr expr;

  SQLNotExpr();
  virtual ~SQLNotExpr();

  SQLNotExpr(SQLExpr_ptr expr);
  SHAREDOBJECT(SQLNotExpr);

  SQLExpr_ptr getExpr();

  void setExpr(SQLExpr_ptr expr);

  void output(std::stringstream * buf);

  // int hashCode();
  // BOOL_ptr equals(Object obj);
protected:
  void accept0(SQLASTVisitor_ptr visitor);
};

